from app import create_app, db
from app.models import Admin, Config, Question
from datetime import datetime

def init_db():
    app = create_app()
    with app.app_context():
        # Drop all tables
        db.drop_all()
        
        # Create tables
        db.create_all()
        
        # Create default admin user if not exists
        if not Admin.query.first():
            admin = Admin(username='admin')
            admin.set_password('admin123')
            db.session.add(admin)
        
        # Create default configs if not exists
        configs = {
            'question_count': '5',
            'retry_limit': '3',
            'questions_per_draw': '1'
        }
        
        for key, value in configs.items():
            if not Config.query.filter_by(key=key).first():
                config = Config(key=key, value=value)
                db.session.add(config)
        
        # Add sample questions
        sample_questions = [
            {
                'content': '请简述你对社团活动的理解，以及你希望从社团活动中获得什么？',
                'answer': '这是一个开放性问题，主要考察学生对社团活动的认识和期望。'
            },
            {
                'content': '如果你要组织一次社团活动，你会如何策划？请简述你的想法。',
                'answer': '这是一个开放性问题，主要考察学生的组织能力和创新思维。'
            },
            {
                'content': '你认为一个优秀的社团成员应该具备哪些素质？',
                'answer': '这是一个开放性问题，主要考察学生对团队合作和个人素质的理解。'
            },
            {
                'content': '请分享一次你参与过的团队合作经历，以及你在其中的角色和收获。',
                'answer': '这是一个开放性问题，主要考察学生的团队合作经验和反思能力。'
            },
            {
                'content': '如果你发现社团活动中存在一些问题，你会如何处理？',
                'answer': '这是一个开放性问题，主要考察学生的问题解决能力和沟通能力。'
            },
            {
                'content': '请描述你理想中的社团氛围是什么样的？',
                'answer': '这是一个开放性问题，主要考察学生对社团文化的理解和期望。'
            },
            {
                'content': '你认为社团活动对大学生活有什么重要意义？',
                'answer': '这是一个开放性问题，主要考察学生对社团活动价值的认识。'
            },
            {
                'content': '如果你要设计一个社团活动，你会选择什么主题？为什么？',
                'answer': '这是一个开放性问题，主要考察学生的创新思维和兴趣方向。'
            },
            {
                'content': '请分享一个你克服困难的经历，以及你从中学到了什么？',
                'answer': '这是一个开放性问题，主要考察学生的抗压能力和成长经历。'
            },
            {
                'content': '你认为社团活动中最重要的是什么？为什么？',
                'answer': '这是一个开放性问题，主要考察学生对社团活动核心价值的理解。'
            }
        ]
        
        for q in sample_questions:
            question = Question(
                content=q['content'],
                answer=q['answer'],
                create_time=datetime.utcnow()
            )
            db.session.add(question)
        
        db.session.commit()
        print('Database initialized successfully!')

if __name__ == '__main__':
    init_db() 